var dataTable;
var last_column = 7;
var gritter_time = 2000;
var status = '';
var message = '';
var ischecked = false;

function initializeDatatable() {
    
    // datatable ajax source
    var ajaxSource = base_url + 'companies/contents/status/all';
    
    // edit datatable columns
    var aoColumns = [
        {'bSearchable': false, 'bVisible': true, 'bSortable': false, 'sClass': 'align-center'},  // checkbox
        {'bSearchable': false, 'bVisible': true, 'bSortable': true, 'sClass': 'align-left'},     // name
        {'bSearchable': true, 'bVisible': true, 'bSortable': true, 'sClass': 'hidden-480'},      // description
        {'bSearchable': true, 'bVisible': true, 'bSortable': true, 'sClass': 'hidden-480'},      // date_created
        {'bSearchable': true, 'bVisible': true, 'bSortable': true, 'sClass': 'hidden-480'},      // date_modified
        {'bSearchable': true, 'bVisible': true, 'bSortable': true, 'sClass': 'align-center'},    // status
        {'bSearchable': false, 'bVisible': true, 'bSortable': false, 'sClass': 'align-center'}   // options
    ];
    
    var filter = [
        null,
        {type:"text"},
        {type:"text"},
        {type:"text"},
        {type:"text"},
        {
            type:"select",
            bCaseSensitive: !0,
            values: ["active","inactive","archived"]
        },
        null
    ];

    // create datatable
    toDataTable('companies-table', ajaxSource, aoColumns, filter);
}

function addEventListeners()
{
    $('.btn-preview').off();
    $('.btn-delete').off();
    $('.btn-delete-multiple').off();
    
//    $('.btn-preview').click(function(e) {
//        e.preventDefault();
//        
////        $('#responsive').modal({
////            width: '55%'
////        });
//        
//        $('#modal').modal('show');
//
//        
//    });
    
    $('.btn-delete').click(function(e) {
        e.preventDefault();
        var deleteLink = e.target.nodeName === 'A' ? e.target.href : $(e.target).closest('a').attr('href');
        $('#modal-btn-ok').attr('href', deleteLink);
        $('#modal').modal('show');
    });
    
    $('.btn-delete-multiple').click(function() {
        
        var selectedItems = [];
        $(":checkbox.record:checked").each(function(e) {
            var value = $(this).val();
            selectedItems.push(value);
        });
        
        if(selectedItems.length > 0) {
            
            if( selectedItems.length === 1 ) {
                
                $('#modal-title').text('Delete Record');
                $('#modal-body').html(deleteRecord);
            } else {
                $('#modal-title').text('Delete Records');
                $('#modal-body').html(deleteRecords);
            }
            
            $('#modal-btn-ok').attr('href', '#');
            $('#modal').modal('show');
            
        } else {
            alert('sdfsdf');
//            $.gritter.add({
//                title: 'No Items Selected',
//                text: 'Please select an item to delete.',
//                time: 1000
//            });
        }
        
    });
    
    $('.check-all, .record').change(function() {

        var selectedItems = [];
        $(":checkbox.record:checked").each(function(e) {
            var value = $(this).val();
            selectedItems.push(value);
        });
        
        if(selectedItems.length > 0) {
            $('.btn-delete-multiple').removeAttr('disabled');
        } else {
            $('.btn-delete-multiple').attr('disabled', true);
        }
    });
    
    // add event listener for check-all checkboxes
    checkAllEventHandler();
}

//function addEventListeners()
//{
    
    
//    $('#active_btn').click(function() {
//        var selected_items = count_selected();
//        if(selected_items.length > 0) {
//            $('#delete_multiple_form').attr('action', base_url + 'companies/confirm_update');
//            $('#post_action').val('Accept');
//            $('#delete_multiple_form').submit();
//        } else {
//            $.gritter.add({
//                title: 'No Items Selected',
//                text: 'Please select an item to accept.',
//                time: gritter_time
//            });
//        }
//    });
//    
//    $('#inactive_btn').click(function() {
//        var selected_items = count_selected();
//        if(selected_items.length > 0) {
//            $('#delete_multiple_form').attr('action', base_url + 'companies/confirm_update');
//            $('#post_action').val('Decline');
//            $('#delete_multiple_form').submit();
//        } else {
//            $.gritter.add({
//                title: 'No Items Selected',
//                text: 'Please select an item to decline.',
//                time: gritter_time
//            });
//        }
//    });
//    
//    $('#edit_btn').click(function() {
//        var selected_items = count_selected();
//        if(selected_items.length > 0) {
//            window.location.href = base_url + 'companies/edit/id/' + selected_items[0];
//        } else {
//            $.gritter.add({
//                title: 'No Items Selected',
//                text: 'Please select an item to edit.',
//                time: gritter_time
//            });
//        }  
//    });
//    
    
    

    $('.btn-delete').click(function(e) {
        e.preventDefault();
        alert('aaaa');
//        var selected_items = count_selected();
//        if(selected_items.length > 0) {
//            $('#delete_multiple_form').attr('action', base_url + 'companies/confirm_delete');
//            $('#delete_multiple_form').submit();
//        } else {
//            $.gritter.add({
//                title: 'No Items Selected',
//                text: 'Please select an item to delete.',
//                time: gritter_time
//            });
//        }  
    });
//    
//    $('#delete_btn').click(function() {
//        var selected_items = count_selected();
//        if(selected_items.length > 0) {
//            $('#delete_multiple_form').attr('action', base_url + 'companies/confirm_delete');
//            $('#delete_multiple_form').submit();
//        } else {
//            $.gritter.add({
//                title: 'No Items Selected',
//                text: 'Please select an item to delete.',
//                time: gritter_time
//            });
//        }  
//    });
//    
//    $('#referesh_btn').click(function(e) {
//        e.preventDefault();
//        $('#check_all').prop('checked', false);
//        dataTable.fnDraw();
//    });
//    
//    $('#show_all_btn').click(function(e) {
//        e.preventDefault();
//        
//        $('#show_active_btn').removeClass('btn-primary');
//        $('#show_inactive_btn').removeClass('btn-primary');
//        $('#show_archived_btn').removeClass('btn-primary');
//        $(this).addClass('btn-primary');
//        
//        $('#toggle_mark_all').prop('checked', false);
//        dataTable.fnSettings().sAjaxSource = base_url + 'companies/contents/status/all';
//        dataTable.fnDraw();
//    });
//    
//    $('#show_active_btn').click(function(e) {
//        e.preventDefault();
//        
//        $('#show_all_btn').removeClass('btn-primary');
//        $('#show_inactive_btn').removeClass('btn-primary');
//        $('#show_archived_btn').removeClass('btn-primary');
//        $(this).addClass('btn-primary');
//        
//        $('#toggle_mark_all').prop('checked', false);
//        dataTable.fnSettings().sAjaxSource = base_url + 'companies/contents/status/active';
//        dataTable.fnDraw();
//    });
//    
//    $('#show_inactive_btn').click(function(e) {
//        e.preventDefault();
//        
//        $('#show_all_btn').removeClass('btn-primary');
//        $('#show_active_btn').removeClass('btn-primary');
//        $('#show_archived_btn').removeClass('btn-primary');
//        $(this).addClass('btn-primary');
//        
//        $('#toggle_mark_all').prop('checked', false);
//        dataTable.fnSettings().sAjaxSource = base_url + 'companies/contents/status/inactive';
//        dataTable.fnDraw();
//    });
//    
//    $('#show_archived_btn').click(function(e) {
//        e.preventDefault();
//        
//        $('#show_all_btn').removeClass('btn-primary');
//        $('#show_active_btn').removeClass('btn-primary');
//        $('#show_inactive_btn').removeClass('btn-primary');
//        $(this).addClass('btn-primary');
//        
//        $('#toggle_mark_all').prop('checked', false);
//        dataTable.fnSettings().sAjaxSource = base_url + 'companies/contents/status/archived';
//        dataTable.fnDraw();
//    });
//    
//    $('#toggle_mark_all').click (function () {
//        $(':checkbox.item').prop('checked', this.checked);
//        var td = $(':checkbox.item').parent().parent();
//        if(this.checked) {
//            td.addClass('row_selected');
//            td.children('td').addClass('row_selected');
//        } else {
//            td.removeClass('row_selected');
//            td.children('td').removeClass('row_selected');
//        }
//    });
    
//    remove_thead_links();
    
//    $('#test_btn').click(function() {
//         $('#content').block({ 
//             message: '<h4> Just a moment...</h4><img src="' +base_url+ 'img/ajax-loader_dark.gif" />',
//             css:   {
//                 padding : '15px'
//             },
//             timeout: 2000
//         }); 
//    });
//}

$(document).ready(function() {
    
    initializeDatatable();
//    $('#main').fadeIn();
});

//function add_ajax() 
//{
//    
//}

function form_to_ajax()
{
    $('#form_ok').off('click');
    $('#form_ok').click(function(e) {
        e.preventDefault();
        ischecked = $('#add_another').is(":checked");
                    
        $('#company_form').ajaxForm({
            success: ajaxResponseAdd
        });
        $('#company_form').submit();
    });
    
    $('#form_ok').off('click');
    $('#form_ok').click(function(e) {
        e.preventDefault();
        
        var script = $(e.target).attr('data-script');
        var link = e.target.href;
        
        if(link === undefined)
        {
            script = $(e.target).parent().attr('data-script');
            link = $(e.target).parent().attr('href');
        }
        
        preload();

        $('#main').load(link +  " #ajax_container", function() {
            $('#main').hide();
            $.when(
                $.getScript( base_url + "js/cms/" +script+ ".js" ),
                $.Deferred(function( deferred ){
                    $( deferred.resolve );
                })
            ).done(function() {
                $('#main').fadeIn();
            });
            to_ajax();
            $('.script_show').show();
        });
    });
}

function responseConfirm(responseText, statusText, xhr, $form) {
    var html = $(responseText);
    var text = html.find('#modal_ajax_container');
    $('#myModal').html(text);
//    dialog_submit();
    $('.script_show').show();
}

function ajaxResponseAdd(responseText, statusText, xhr, $form) {
    
    var html = $(responseText);
    var text = html.find('#ajax_container');

    $('#main').html(text.html());
    $('.script_show').show();
    initialize_elements();
    
//    status = html.find('#status').html();
//    if( status === 'add_success' ) {
//        if( ! ischecked) { 
//            $('#content').html(text.html());
//            $('.script_show').show();
//        } else {
//            $('#content').html(text.html());
//            initialize_elements();
//        }
//    } else {
//        $('#content').html(text.html());
//        initialize_elements();
//    }
}

function ajaxResponseEdit(responseText, statusText, xhr, $form) {
    
    var html = $(responseText);
    var text = html.find('#ajax_container');

    status = html.find('#status').html();
    if( status === 'edit_success' ) {
        $('#content').html(text.html());
        $('.script_show').show();
    } else {
        $('#content').html(text.html());
        initialize_elements();
    }
}

function add_ajax()
{
    $('#edit_btn').off('click');
    $('#delete_btn').off('click');
    
    $('#active_btn').off('click');
    $('#inactive_btn').off('click');
    
    $('.with-modal').click(function(e) {
        e.preventDefault();
        
        var link = e.target.href;
        id = e.target.id;
        var target = e.target;
        if(link === undefined)
        {
            link = $(e.target).parent().attr('href');
            id = e.target.parentNode.id;
            target = e.target.parentNode;
        }
        
        if($(target).hasClass('btn-status'))
        {
            $('#myModal').load(link + " #modal_ajax_container", function(){
                ajax_dialog();
                $('.script_show').show();
            });
            show_modal();
        }
        
//        // modal delete
//        else if($(target).hasClass('btn_delete'))
//        {
//            $('#myModal').load(link + " #modal_ajax_container", function(){
//                ajax_dialog();
//                $('.script_show').show();
//            });
//            show_modal();
//        }

        else if($(target).hasClass('btn_delete'))
        {
            $('#ajax_container').load(link + " #ajax_container", function(){
//                ajax_dialog();
                to_ajax();
                $('.script_show').show();
            });
//            show_modal();
        }

//        else if($(target).hasClass('btn_gallery'))
//        {
//            $('#content').load(link + " #ajax_container", function(){
//                var links = link.split('/');
//                var script = links[4];
//                
//                $.when(
//                    $.getScript(base_url + "js/cms/" + script + ".js"),
//                    $.Deferred(function(deferred) {
//                        $(deferred.resolve);
//                    })
//                ).done(function() {
//                    initialize_elements();
//                    $('.script_show').show();
//                });
//            });
//        }
//        
        else if (id === 'add_btn')
        {
            preload();
            $('#main').load(link + " #ajax_container", function() {
//                $('#btn_save').click(function() {
//                    ischecked = $('#add_another').is(":checked");
//                    // bind to the form's submit event
//                    $('#bb').ajaxForm({
//                        success: ajaxResponseAdd
//                    });
//                });

//                $('#form_ok').click(function(e) {
//                    e.preventDefault();
//                    ischecked = $('#add_another').is(":checked");
//                    
//                    $('#company_form').ajaxForm({
//                        success: ajaxResponseAdd
//                    });
//                    $('#company_form').submit();
//                    
////                    ischecked = $('#add_another').is(":checked");
////                    // bind to the form's submit event
////                    $('#bb').ajaxForm({
////                        success: ajaxResponseAdd
////                    });
//                });

                retrieve_form_script('super_admin/forms/company_form');
                to_ajax();
            });
        }
        
        else if($(target).hasClass('btn_edit'))
        {
            preload();
            $('#main').load(link + " #ajax_container", function() {
                $('#btn_save').click(function(){
                    // bind to the form's submit event
                    $('#bb').ajaxForm({
                        success: ajaxResponseEdit
                    });
                });
//                initialize_elements();
                retrieve_form_script('super_admin/forms/company_form');
                to_ajax();
            });
            
        }
        
        else if (id === 'active_btn')
        {
            var selected_items = count_selected();
            if(selected_items.length > 0) {
                $('#delete_multiple_form').attr('action', base_url + 'companies/confirm_update');
                $('#post_action').val('Accept');
                
                // bind to the form's submit event
                $('#delete_multiple_form').ajaxForm({
                    success: responseConfirm
                });
                // then submit the form
                $('#delete_multiple_form').submit();
                show_modal();
            } else {
                $.gritter.add({
                    title: 'No Items Selected',
                    text: 'Please select an item to accept.',
                    time: gritter_time
                });
            }
        }
        
//        else if (id === 'inactive_btn')
//        {
//            var selected_items = count_selected();
//            if(selected_items.length > 0) {
//                $('#delete_multiple_form').attr('action', base_url + 'companies/confirm_update');
//                $('#post_action').val('Decline');
//                // bind to the form's submit event
//                $('#delete_multiple_form').ajaxForm({
//                        success: responseConfirm
//                    });
//                // then submit the form
//                $('#delete_multiple_form').submit();
//                show_modal();
//            } else {
//                $.gritter.add({
//                    title: 'No Items Selected',
//                    text: 'Please select an item to decline.',
//                    time: gritter_time
//                });
//            }
//        }
//        
//        else if (id === 'edit_btn')
//        {
//            var selected_items = count_selected();
//            if(selected_items.length > 0) {
//                preload();
//                link = base_url + 'companies/edit/id/' + selected_items[0];
//                $('#content').load(link + " #ajax_container", function() {
//                    $('#btn_save').click(function() {
//                        // bind to the form's submit event
//                        $('#bb').ajaxForm({
//                            success: ajaxResponseEdit
//                        });
//                    });
//                    retrieve_form_script('company_form');
//                });
//            } else {
//                $.gritter.add({
//                    title: 'No Items Selected',
//                    text: 'Please select an item to edit.',
//                    time: gritter_time
//                });
//            }
//        }
//        
//        else if (id === 'delete_btn')
//        {
//            var selected_items = count_selected();
//            if(selected_items.length > 0) {
//                $('#delete_multiple_form').attr('action', base_url + 'companies/confirm_delete');
//                // bind to the form's submit event
//                $('#delete_multiple_form').ajaxForm({
//                        success: responseConfirm
//                    });
//                // then submit the form
//                $('#delete_multiple_form').submit();
//                show_modal();
//            } else {
//                $.gritter.add({
//                    title: 'No Items Selected',
//                    text: 'Please select an item to delete.',
//                    time: gritter_time
//                });
//            }
//        }

//        else {
//            $('#content').load(link + " #content-area", function() {
//                initialize_elements();
//            });
//        }

    });
}

//function add_modal()
//{
//    $('#edit_btn').off('click');
//    $('#delete_btn').off('click');
//    $('#active_btn').off('click');
//    $('#inactive_btn').off('click');
//    
//    $('.with-modal').click(function(e) {
//        e.preventDefault();
//        
//        var link = e.target.href;
//        id = e.target.id;
//        var target = e.target;
//        if(link === undefined)
//        {
//            link = $(e.target).parent().attr('href');
//            id = e.target.parentNode.id;
//            target = e.target.parentNode;
//        }
//        
//        if($(target).hasClass('btn-status'))
//        {
//            $('#modal_body').load(link + " #dialog", function(){
//                ajax_dialog();
//                $('.script_show').show();
//            });
//            show_modal();
//        }
//        
//        if($(target).hasClass('btn_delete'))
//        {
//            $('#modal_body').load(link + " #dialog", function(){
//                ajax_dialog();
//                $('.script_show').show();
//            });
//            show_modal();
//        }
//        
//        else if($(target).hasClass('btn_edit'))
//        {
//            $('#modal_body').load(link + " #content-area", function() {
//                $('#modal_footer').html('<button id="close_btn" class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button><button id="save_btn" class="btn btn-primary">Save changes</button>');
//                $('#save_btn').click(function(){
//                    // bind to the form's submit event
//                    $('#bb').ajaxForm({
//                        success: responseEdit
//                    });
//                    // then submit the form
//                    $('#bb').submit();
//                });
//                $('.form-actions').hide();
//                initialize_elements();
//                show_modal();
//            });
//        }
//
//        else if (id === 'add_btn')
//        {
//            $('#modal_body').load(link + " #company_form_box", function() {
////                $('#modal_footer').html('<button id="close_btn" class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button><button id="save_btn" class="btn btn-primary">Save changes</button>');
////                $('#save_btn').click(function() {
////                    ischecked = $('#add_another').is(":checked");
////                    // bind to the form's submit event
////                    $('#bb').ajaxForm({
////                        success: responseAdd
////                    });
////                    // then submit the form
////                    $('#bb').submit();
////                });
////                $('.form-actions').hide();
////                initialize_elements();
//            });
//            show_modal();
//            
////            $('#modal_body').load(link + " #content-area", function() {
////                $('#modal_footer').html('<button id="close_btn" class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button><button id="save_btn" class="btn btn-primary">Save changes</button>');
////                $('#save_btn').click(function() {
////                    ischecked = $('#add_another').is(":checked");
////                    // bind to the form's submit event
////                    $('#bb').ajaxForm({
////                        success: responseAdd
////                    });
////                    // then submit the form
////                    $('#bb').submit();
////                });
////                $('.form-actions').hide();
////                initialize_elements();
////                show_modal();
////            });
//        }
//        
//        else if (id === 'edit_btn')
//        {
//            var selected_items = count_selected();
//            if(selected_items.length > 0) {
//                link = base_url + 'companies/edit/id/' + selected_items[0];
//                
//                $('#modal_body').load(link + " #content-area", function() {
////                    $('#modal_footer').html('<button id="close_btn" class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button><button id="save_btn" class="btn btn-primary">Save changes</button>');
//                    $('#save_btn').click(function() {
//                        // bind to the form's submit event
//                        $('#company_form').ajaxForm({
//                            success: responseAdd
//                        });
//                        // then submit the form
//                        $('#company_form').submit();
//                    });
////                    $('.form-actions').hide();
////                    initialize_elements();
//                    show_modal();
//                });
//
//            } else {
//                $.gritter.add({
//                    title: 'No Items Selected',
//                    text: 'Please select an item to edit.',
//                    time: gritter_time
//                });
//            }
//        }
//        
//        else if (id === 'active_btn')
//        {
//            var selected_items = count_selected();
//            if(selected_items.length > 0) {
//                $('#delete_multiple_form').attr('action', base_url + 'companies/confirm_update');
//                $('#post_action').val('Accept');
//                // bind to the form's submit event
//                $('#delete_multiple_form').ajaxForm({
//                        success: responseConfirm
//                    });
//                // then submit the form
//                $('#delete_multiple_form').submit();
//                show_modal();
//            } else {
//                $.gritter.add({
//                    title: 'No Items Selected',
//                    text: 'Please select an item to accept.',
//                    time: gritter_time
//                });
//            }
//        }
//        
//        else if (id === 'inactive_btn')
//        {
//            var selected_items = count_selected();
//            if(selected_items.length > 0) {
//                $('#delete_multiple_form').attr('action', base_url + 'companies/confirm_update');
//                $('#post_action').val('Decline');
//                // bind to the form's submit event
//                $('#delete_multiple_form').ajaxForm({
//                        success: responseConfirm
//                    });
//                // then submit the form
//                $('#delete_multiple_form').submit();
//                show_modal();
//            } else {
//                $.gritter.add({
//                    title: 'No Items Selected',
//                    text: 'Please select an item to decline.',
//                    time: gritter_time
//                });
//            }
//        }
//        
//        else if (id === 'delete_btn')
//        {
//            var selected_items = count_selected();
//            if(selected_items.length > 0) {
//                $('#delete_multiple_form').attr('action', base_url + 'companies/confirm_delete');
//                
//                // bind to the form's submit event
//                $('#delete_multiple_form').ajaxForm({
//                    success: responseConfirm
//                });
//                    
//                // then submit the form
//                $('#delete_multiple_form').submit();
//                
//                show_modal();
//            } else {
//                $.gritter.add({
//                    title: 'No Items Selected',
//                    text: 'Please select an item to delete.',
//                    time: gritter_time
//                });
//            }
//        }
//
////        else {
////            $('#modal_body').load(link + " #content-area", function() {
////                $('#modal_footer').html('<button id="close_btn" class="btn btn-primary" data-dismiss="modal" aria-hidden="true">Close</button>');
////                initialize_elements();
////            });
////            show_modal();
////        }
//    });
//}

//function responseAdd(responseText, statusText, xhr, $form)  {
//    var html = $(responseText);
//    var text = html.find('#content-area');
//
//    status = html.find('#status').html();
//    
//    if( status === 'add_success' || status === 'edit_success' ) {
//        if( ! ischecked) {
//            
//            hide_modal();
//            text = html.find('#ajax_container');
//            $('#content').html(text.html());
//            $('.script_show').show();
//            
//        } else {
//            $('#modal_body').html(text.html());
//            $('.form-actions').hide();
//            initialize_elements();
//        }
//    } else {
//        $('#modal_body').html(text.html());
//        $('.form-actions').hide();
//        initialize_elements();
//    }
//}
//
//
//function responseEdit(responseText, statusText, xhr, $form)  {
//    
//    var html = $(responseText);
//    var text = html.find('#content-area');
//    
//    status = html.find('#status').html();
//    
//    if( status === 'edit_success' ) {
//
//        hide_modal();
//        text = html.find('#ajax_container');
//        $('#content').html(text.html());
//        $('.script_show').show();
//
//    } else {
//        $('#modal_body').html(text.html());
//        $('.form-actions').hide();
//        initialize_elements();
//    }
//}
//
//function responseDelete(responseText, statusText, xhr, $form)  {
//    var html = $(responseText);
//    var content = html.find('#ajax_container');
//    $('#content').html(content);
//    $('.script_show').show();
//}

//function dialog_submit()
//{
//    $('#dialog_ok').click(function(e) {
//        e.preventDefault();
//
//        hide_modal();
//        // bind to the form's submit event
//        $('#dialog_form').ajaxForm({
//            success: responseDelete
//        });
//        // then submit the form
//        $('#dialog_form').submit();
//    });
//    
//    $('#dialog_cancel').click(function(e) {
//        e.preventDefault();
//        hide_modal();
//    });
//}
